第14章 ASCII编码
14.1 基本概念
ASCII全称美国信息交换标准代码,使用7位二进制,对应十进制0~127,共128个字符。 计算机存储char时占用1字节(8位),最高位固定为0。 作用:统一字符和数字的对应关系,实现文本存储、输入输出。
14.2 ASCII字符分类
14.2.1 控制字符(0~31、127)
不可打印,用于设备控制
\0数值0:字符串结束标记\n数值10:换行\r数值13:回车- ESC 27、DEL 127
14.2.2 可打印字符(32~126)
- 空格:32
- 数字'0'~'9':48 ~ 57
- 大写'A'~'Z':65 ~ 90
- 小写'a'~'z':97 ~ 102
- 标点、运算符:
! + - =等
关键规律
小写字母 = 对应大写字母 + 32 例:'A'(65)+32 = 'a'(97)
14.3 扩展ASCII(8位,0~255)
0127和标准ASCII一致,128255为扩展符号。
缺陷:不同系统扩展字符表不统一,跨平台乱码,不推荐使用。
14.4 C/C++中的ASCII应用
char本质是1字节整数,可以和int互相转换
char ch = 'A';
int num = ch; // num = 65
char c2 = 97; // c2 = 'a'
1. 判断字符类型
// 判断大写
if(c >= 'A' && c <= 'Z')
// 判断小写
if(c >= 'a' && c <= 'z')
// 判断数字
if(c >= '0' && c <= '9')
2. 大小写转换
char toLower(char c){
if(c >= 'A' && c <= 'Z')
return c + 32;
return c;
}
3. 字符串判断结束
遍历字符数组时,str[i] == '\0'代表字符串末尾
14.5 ASCII局限
仅支持英文拉丁字符,无法存储中文; 中文使用GBK、Unicode(UTF-8)等编码。